#include <stdio.h>
#include <stdlib.h>
#include "piece.h"
#include "coupcavalier.h"
#include "echiquier.h"

void coupcavalier (int echiquier[8][8], struct piece piec, int tabretourpiece[30][2],int &nbrecoup)
{
   int deplacement; //future variable nbrecoup
   deplacement=0;

/* Il y aura 8 tests, pour les 8 déplacements possibles, avec un test pour chacun d'eux afin de regarder si la case est libre, et dans l'échiquier */
 if (echiquier[piec.ligne][piec.colonne]>0)//verifie si le cavalier appartient au joueur 1 ou 2
 {




            if (echiquier[piec.ligne+1][piec.colonne+2]<=0 && piec.colonne+2 < 8 && piec.colonne >= 0 && piec.ligne+1<8 && piec.ligne>= 0)
           //il faut que la case visée soit inférieur à 0 (soit vide égale à 0 ou inférieur strictement s'il y a une pièce adverse) et dans l'échiqier
            {

                tabretourpiece[deplacement][0]= piec.ligne+1;   //on inscrit dans le tableau la coordonnée horizontale de la case possible
                tabretourpiece[deplacement][1]= piec.colonne+2; //la coordonnée verticale
                deplacement++;//on incrémente déplacement si le choix est possible
                }


            if (echiquier[piec.ligne+1][piec.colonne-2]<=0 && piec.colonne < 8 && piec.colonne-2 >= 0 && piec.ligne+1<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]= piec.ligne+1;
                tabretourpiece[deplacement][1]= piec.colonne-2;
                deplacement++;


            }

            if (echiquier[piec.ligne-1][piec.colonne+2]<=0 && piec.colonne+2 < 8 && piec.colonne >= 0 && piec.ligne <8 && piec.ligne-1>= 0)
            {
               tabretourpiece[deplacement][0]= piec.ligne-1;
               tabretourpiece[deplacement][1]= piec.colonne+2;
               deplacement++;
            }

           if (echiquier[piec.ligne-1][piec.colonne-2]<=0 && piec.colonne < 8 && piec.colonne-2 >= 0 && piec.ligne<8 && piec.ligne-1 >= 0)
            {
                tabretourpiece[deplacement][0]= piec.ligne-1;
                tabretourpiece[deplacement][1]= piec.colonne-2;
                deplacement++;
            }

            if (echiquier[piec.ligne+2][piec.colonne+1]<=0 && piec.colonne+1 < 8 && piec.colonne >= 0 && piec.ligne+2 <8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne+2;
                tabretourpiece[deplacement][1]=piec.colonne+1;
                deplacement++;
            }

           if (echiquier[piec.ligne+2][piec.colonne-1]<=0 && piec.colonne < 8 && piec.colonne-1 >= 0 && piec.ligne+2<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne+2;
                tabretourpiece[deplacement][1]=piec.colonne-1;
                deplacement++;
            }

             if (echiquier[piec.ligne-2][piec.colonne+1]<=0 && piec.colonne+1 < 8 && piec.colonne>= 0 && piec.ligne <8 && piec.ligne-2>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne-2;
                tabretourpiece[deplacement][1]=piec.colonne+1;
                deplacement++;

            }

            if (echiquier[piec.ligne-2][piec.colonne-1]<=0 && piec.colonne < 8 && piec.colonne-1 >= 0 && piec.ligne<8 && piec.ligne-2>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne-2;
                tabretourpiece[deplacement][1]=piec.colonne-1;
                deplacement++;
            }
 }
 else
 {
        if (echiquier[piec.ligne+1][piec.colonne+2]>=0 && piec.colonne+2 < 8 && piec.colonne >= 0 && piec.ligne+1<8 && piec.ligne>= 0)
            {

                tabretourpiece[deplacement][0]= piec.ligne+1;
                tabretourpiece[deplacement][1]= piec.colonne+2;
                deplacement++;
                }


            if (echiquier[piec.ligne+1][piec.colonne-2]>=0 && piec.colonne < 8 && piec.colonne-2 >= 0 && piec.ligne+1<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]= piec.ligne+1;
                tabretourpiece[deplacement][1]= piec.colonne-2;
                deplacement++;


            }

            if (echiquier[piec.ligne-1][piec.colonne+2]>=0 && piec.colonne+2 < 8 && piec.colonne >= 0 && piec.ligne <8 && piec.ligne-1>= 0)
            {
               tabretourpiece[deplacement][0]= piec.ligne-1;
               tabretourpiece[deplacement][1]= piec.colonne+2;
               deplacement++;
            }

           if (echiquier[piec.ligne-1][piec.colonne-2]>=0 && piec.colonne < 8 && piec.colonne-2 >= 0 && piec.ligne<8 && piec.ligne-1 >= 0)
            {
                tabretourpiece[deplacement][0]= piec.ligne-1;
                tabretourpiece[deplacement][1]= piec.colonne-2;
                deplacement++;
            }

            if (echiquier[piec.ligne+2][piec.colonne+1]>=0 && piec.colonne+1 < 8 && piec.colonne >= 0 && piec.ligne+2 <8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne+2;
                tabretourpiece[deplacement][1]=piec.colonne+1;
                deplacement++;
            }

           if (echiquier[piec.ligne+2][piec.colonne-1]>=0 && piec.colonne < 8 && piec.colonne-1 >= 0 && piec.ligne+2<8 && piec.ligne>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne+2;
                tabretourpiece[deplacement][1]=piec.colonne-1;
                deplacement++;
            }

             if (echiquier[piec.ligne-2][piec.colonne+1]>=0 && piec.colonne+1 < 8 && piec.colonne>= 0 && piec.ligne <8 && piec.ligne-2>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne-2;
                tabretourpiece[deplacement][1]=piec.colonne+1;
                deplacement++;

            }

            if (echiquier[piec.ligne-2][piec.colonne-1]>=0 && piec.colonne < 8 && piec.colonne-1 >= 0 && piec.ligne<8 && piec.ligne-2>= 0)
            {
                tabretourpiece[deplacement][0]=piec.ligne-2;
                tabretourpiece[deplacement][1]=piec.colonne-1;
                deplacement++;
            }
 }

            nbrecoup=deplacement;
    }
